/* 品牌接口 : Base Trademark Controller */
// 引入封装的axios请求
import request from "@/utils/request.js";
// 引入品牌相关的ts类型
import type {
  GetTrademarkListResponse,
  TrademarkList,
  TrademarkItem,
} from "./model/trademarkModel";

// 枚举发送请求的地址
enum Api {
  getTrademarkListUrl = "/admin/product/baseTrademark",
  getAllTrademarkListUrl = "/admin/product/baseTrademark/getTrademarkList",
  addTrademarkUrl = "/admin/product/baseTrademark/save",
  updateTrademarkUrl = "/admin/product/baseTrademark/update",
  deleteTrademarkUrl = "/admin/product/baseTrademark/remove",
}

/**
 * 获取分页列表
 * @param page 当前页码
 * @param limit 每条页数
 * @returns
 */
export const GetTrademarkListApi = (page: number, limit: number) => {
  return request.get<number, GetTrademarkListResponse>(
    Api.getTrademarkListUrl + `/${page}/${limit}` // path参数
  );
};

/**
 * 获取所有品牌列表数据
 * @returns 所有品牌列表数据
 */
export const GetAllTrademarkListApi = () => {
  return request.get<number, TrademarkList>(Api.getAllTrademarkListUrl);
};

/**
 * 添加品牌列表数据
 * @param tmName 品牌名称
 * @param logoUrl 品牌LOGO地址
 * @returns null
 */
export const AddTrademarkApi = (tmName: string, logoUrl: string) => {
  return request.post<number, null>(Api.addTrademarkUrl, { tmName, logoUrl }); // body参数
};

/**
 * 更改品牌列表数据
 * @param trademark 品牌数据 TrademarkItem
 * @returns null
 */
export const UpdateTrademarkApi = (trademark: TrademarkItem) => {
  return request.put<number, null>(Api.updateTrademarkUrl, trademark); // body参数
};

/**
 * 删除品牌列表数据
 * @param id 品牌id
 * @returns null
 */
export const DeleteTrademarkApi = (id: number) => {
  return request.delete<number, null>(Api.deleteTrademarkUrl + `/${id}`); // path参数
};
